package cn.cool.util;

import java.util.Map;

public class CdUtil {

    private CdUtil() {
    }

    /**
     * 打印标识
     */
    public static void printCdDropdownInfo() {
        String str = " ________  ________                 ________  ________  ________  ________  ________  ________  ___       __   ________       \r\n"
                + "|\\   ____\\|\\   ___ \\               |\\   ___ \\|\\   __  \\|\\   __  \\|\\   __  \\|\\   ___ \\|\\   __  \\|\\  \\     |\\  \\|\\   ___  \\     \r\n"
                + "\\ \\  \\___|\\ \\  \\_|\\ \\  ____________\\ \\  \\_|\\ \\ \\  \\|\\  \\ \\  \\|\\  \\ \\  \\|\\  \\ \\  \\_|\\ \\ \\  \\|\\  \\ \\  \\    \\ \\  \\ \\  \\\\ \\  \\    \r\n"
                + " \\ \\  \\    \\ \\  \\ \\\\ \\|\\____________\\ \\  \\ \\\\ \\ \\   _  _\\ \\  \\\\\\  \\ \\   ____\\ \\  \\ \\\\ \\ \\  \\\\\\  \\ \\  \\  __\\ \\  \\ \\  \\\\ \\  \\   \r\n"
                + "  \\ \\  \\____\\ \\  \\_\\\\ \\|____________|\\ \\  \\_\\\\ \\ \\  \\\\  \\\\ \\  \\\\\\  \\ \\  \\___|\\ \\  \\_\\\\ \\ \\  \\\\\\  \\ \\  \\|\\__\\_\\  \\ \\  \\\\ \\  \\  \r\n"
                + "   \\ \\_______\\ \\_______\\              \\ \\_______\\ \\__\\\\ _\\\\ \\_______\\ \\__\\    \\ \\_______\\ \\_______\\ \\____________\\ \\__\\\\ \\__\\ \r\n"
                + "    \\|_______|\\|_______|               \\|_______|\\|__|\\|__|\\|_______|\\|__|     \\|_______|\\|_______|\\|____________|\\|__| \\|__| \r\n"
                + "( :: CD-DROPDOWN :: " + CdConstant.VERSION_NO + ")";
        System.out.println(str);
    }

    public static boolean isStrEmpty(String str) {
        return str == null || str.trim().isEmpty();
    }

    public static boolean isNotEmpty(String str) {
        return !isStrEmpty(str);
    }

    public static boolean isObjectEmpty(Object obj) {
        return obj == null;
    }

    public static boolean isObjectNotEmpty(Object obj) {
        return !isObjectEmpty(obj);
    }

    /**
     * 判断类型是否为基础类型 (8大基本数据类型、8大包装类、String)
     * @param cs 输入类
     * @return 是否基础类型
     */
    public static boolean isBasicType(Class<?> cs) {
        return cs.isPrimitive() || isWrapperType(cs) || cs == String.class;
    }

    /**
     * 判断类型是否为包装类型
     * @param cs 输入类
     * @return 是否包装类型
     */
    public static boolean isWrapperType(Class<?> cs) {
        return cs == Integer.class || cs == Short.class ||  cs == Long.class ||  cs == Byte.class
                || cs == Float.class || cs == Double.class ||  cs == Boolean.class ||  cs == Character.class;
    }

}
